
import java.awt.Checkbox;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.util.*;

/**
 * <p>
 * Detalha a acao a ser executada quando acionado o BotaoDeSelecao via a
 * sua representacao grafica (Checkbox) na interface de usuario.
 * </p>
 */
class ComandoBotaoDeSelecao implements ItemListener {

  ///////////////////////////////////////
  // attributes


/**
 * <p>
 * Agrupamento de elementos graficos que representam o BotaoDeSelecao
 * acionado.
 * </p>
 */
    private ArranjoBotaoInternoAndar arranjoBotao; 

/**
 * <p>
 * Representa graficamente o proprio Botao.
 * </p>
 */
    private Checkbox botaoAndar; 


  ///////////////////////////////////////
  // operations


/**
 * <p>
 * Gera uma instancia de ComandoBotaoDeSelecao.
 * </p>
 * 
 * @param arranjoBotao - aglomerado (Panel) de elementos graficos que
 * representa o Botao de Selecao na InterfaceDeUsuario.
 * 
 * @return uma instancia de ComandoBotaoDeSelecao.
 * 
 * @param botaoAndar - representa graficamente o proprio Botao.
 */
    public  ComandoBotaoDeSelecao(ArranjoBotaoInternoAndar arranjoBotao, Checkbox botaoAndar) {        
        this.arranjoBotao = arranjoBotao;
        this.botaoAndar = botaoAndar;
    } // end ComandoBotaoDeSelecao        

/**
 * <p>
 * Executa a acao especificada no metodo apos o acionamento do
 * BotaoDeSelecao.
 * </p>
 * 
 * @param e - evento que representa o acionamento do BotaoDeSelecao.
 */
    public void itemStateChanged(ItemEvent e) {        
        if (e.getStateChange() == ItemEvent.SELECTED)
            arranjoBotao.registrarAcionamento();
        else botaoAndar.setState(true);
    } // end itemStateChanged        

 } // end ComandoBotaoDeSelecao



